package flex.cc.common.utils;

import flex.cc.PublicUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @author wkangle
 * @className TypeConverUtils
 * @description 类型转换工具类
 * @time 2021-09-23 10:03:43
 */
@Component
@PropertySource("classpath:application.yml")
public class TypeConverUtils {


    @Value("${serviceprovider.pengda.serverId}")
    private String the_serverId;

    /**
     * @description 事故类型转换 TODO 后续添加其他服务商对应的值转换
     * @param serverId 服务商id，默认鹏达
     * @param incidentType 车服平台事故类型编号
     * @return 服务商事故类型编号
     * @author wkangle
     * @time 2021/09/23 0023 10:47
     * @exception/throws
    */
    public Integer getIncidentType(String serverId, Integer incidentType) {
        if (PublicUtil.isNotEmpty(serverId) && serverId.equals(the_serverId)) {
            if(PublicUtil.isNotEmpty(incidentType)){
                if(incidentType == 0){
                    return 1;
                } else if (incidentType == 1){
                    return 2;
                }
            }
        }
        return incidentType;
    }

    /**
     * @description 根据车服平台服务类型，转成下游对应的服务类型 TODO 后续添加其他服务商对应的值转换
     * @param serverId 服务商id，默认鹏达
     * @param serviceType 平台服务类型编号
     * @return 鹏达接收的服务类型编号
     * @author wkangle
     * @time 2021/09/23 0023 10:53
     * @exception/throws
     */
    public Integer getServiceItem(String serverId, String serviceType) {
        if (PublicUtil.isNotEmpty(serverId) && serverId.equals(the_serverId)) {
            if(PublicUtil.isNotEmpty(serviceType)){
                if ("FSG001".equals(serviceType)){
                    return 100;
                } else if ("FSG005".equals(serviceType)){
                    return 200;
                } else if ("FSG011".equals(serviceType)) {
                    return 201;
                } else if ("FSG003".equals(serviceType)){
                    return 300;
                } else if ("FSG002".equals(serviceType)){
                    return 301;
                } else if ("FSG010".equals(serviceType)){
                    return 302;
                } else if ("FSG006".equals(serviceType)){
                    return 400;
                } else if ("FSG004".equals(serviceType)
                        || "FSG007".equals(serviceType)){
                    return 500;
                } else if ("FSG008".equals(serviceType)
                        || "FSG009".equals(serviceType)
                        || "FSG099".equals(serviceType)){
                    return 600;
                } else {
                    return 600;
                }
            }
        }
        return null;
    }



    /**
     * @description 根据渠道传来的服务类型编号，转成平台对应的服务类型编号 【2.2新渠道优化】新渠道中华02，新增送油服务A01 -- FSG012
     * @param sourceId 渠道，默认电话中心阳光-01，中华-02
     * @param serviceType 渠道传来的服务类型编号
     * @return 平台对应的服务类型编号
     * @author wkangle
     * @time 2021/09/23 0023 10:55
     * @exception/throws
     */
    public static String getServiceType(String sourceId, String serviceType) {
        //if (PublicUtil.isNotEmpty(sourceId) && sourceId.equals("01")) {
        if (PublicUtil.isNotEmpty(sourceId) && (sourceId.equals("01") || sourceId.equals("02"))) {
            if(PublicUtil.isNotEmpty(serviceType)) {
                if ("01".equals(serviceType)) {
                    return "FSG001";
                } else if ("02".equals(serviceType)) {
                    return "FSG002";
                } else if ("03".equals(serviceType)
                        || "3".equals(serviceType)
                        || "22".equals(serviceType)) {
                    return "FSG010";
                } else if ("04".equals(serviceType)) {
                    return "FSG003";
                } else if ("07".equals(serviceType)) {
                    return "FSG004";
                }  else if ("08".equals(serviceType)) {
                    return "FSG005";
                } else if ("09".equals(serviceType)) {
                    return "FSG006";
                } else if ("16".equals(serviceType)) {
                    return "FSG008";
                } else if ("18".equals(serviceType)) {
                    return "FSG009";
                } else if ("23".equals(serviceType)) {
                    return "FSG011";
                } else if ("A01".equals(serviceType)) { // 中华新增A01送油
                    return "FSG012";
                } else if ("05".equals(serviceType)
                        || "06".equals(serviceType)
                        || "10".equals(serviceType)
                        || "11".equals(serviceType)
                        || "12".equals(serviceType)
                        || "13".equals(serviceType)
                        || "14".equals(serviceType)
                        || "15".equals(serviceType)
                        || "17".equals(serviceType)
                        || "19".equals(serviceType)
                        || "20".equals(serviceType)
                        || "21".equals(serviceType)
                        || "99".equals(serviceType)) {
                    return "FSG099";
                } else {
                    return "FSG099";
                }
            }
        }
        return null;
    }

    /**
     * @description 根据车服平台的服务类型编号，转换成对应渠道的服务类型编号【2.2新渠道优化】新渠道中华02，状态回传时需根据车服服务类型转成渠道需要的服务类型编码
     * @param sourceId 渠道，中华-02
     * @param serviceType 平台服务类型编号
     * @return 对应渠道的服务类型编号
     * @author wkangle
     * @time 2022/04/15 0015 13:35
     * @exception/throws
    */
    public static String getServiceCode(String sourceId, String serviceType) {
        if (PublicUtil.isNotEmpty(sourceId) && "02".equals(sourceId)) {
            if (PublicUtil.isNotEmpty(serviceType)) {
                if ("FSG005".equals(serviceType)) { // 拖车服务 -- 紧急拖车
                    return "1";
                } else if ("FSG006".equals(serviceType)) { // 困境救援 -- 困境救援
                    return "2";
                } else if ("FSG006".equals(serviceType)) { // 现场快修 -- 简易维修
                    return "3";
                } else if ("FSG001".equals(serviceType)) { // 搭电服务 -- 搭电
                    return "4";
                } else if ("FSG002".equals(serviceType)) { // 换胎服务 -- 换胎
                    return "5";
                } else if ("FSG010".equals(serviceType)) { // 轮胎充气 -- 充气
                    return "6";
                } else if ("FSG012".equals(serviceType)) { // 送油服务 -- 送油
                    return "7";
                } else if ("FSG004".equals(serviceType)) { // 送水服务 -- 送水
                    return "8";
                }
            }
        }
        return null;
    }

    public String getThe_serverId() {
        return the_serverId;
    }

    public void setThe_serverId(String the_serverId) {
        this.the_serverId = the_serverId;
    }

}
